package java行为型设计模式.迭代器模式;

/**
 *
 迭代器模式以顺序方式访问集合对象的元素，而不知道其底层表示。

 迭代器模式是行为模式之一。
 */
public class Main {
    public static void main(String[] args) {
        LetterBag bag = new LetterBag();
        for (Iterator iter = bag.getIterator(); iter.hasNext();){
            String name = (String) iter.next();
            System.out.println("Name : " + name);
        }
    }
}
interface Iterator{
    public boolean hasNext();
    public Object next();
}
class LetterBag{
    public String names[] = {"R","J","A","L"};
    public Iterator getIterator(){
        return new NameIterator();
    }
    class NameIterator implements Iterator{
        int index;
        //判断下个还有没有
        @Override
        public boolean hasNext() {
            if (index < names.length){
                return true;
            }
            return false;
        }
        //输出
        @Override
        public Object next() {
            if (this.hasNext()){
                return names[index++];
            }
            return null;
        }
    }
}